package com.zatech.cgnci.project.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@Data
@ApiModel(description = "理赔案件更新DTO")
public class CgnciClaimCaseUpdateDTO {

    @ApiModelProperty("案件ID")
    @NotNull(message = "案件ID不能为空")
    private Long caseId;

    @ApiModelProperty("案件名称")
    @NotBlank(message = "案件名称不能为空")
    private String caseName;

    @ApiModelProperty("是否巨灾案件")
    private Boolean isCatastrophe;

    @ApiModelProperty("巨灾名称")
    private String catastropheName;

    @ApiModelProperty("出险日期")
    @NotNull(message = "出险日期不能为空")
    private Date accidentDate;

    @ApiModelProperty("出险日期止期")
    private Date accidentEndDate;

    @ApiModelProperty("出险原因")
    @NotBlank(message = "出险原因不能为空")
    private String accidentReason;

    @ApiModelProperty("通知日期")
    @NotNull(message = "通知日期不能为空")
    private Date notifyDate;

    @ApiModelProperty("立案日期")
    @NotNull(message = "立案日期不能为空")
    private Date registerDate;

    @ApiModelProperty("报损金额")
    @NotNull(message = "报损金额不能为空")
    private BigDecimal reportAmount;

    @ApiModelProperty("报损金额币种")
    @NotBlank(message = "报损金额币种不能为空")
    private String reportCurrency;

    @ApiModelProperty("初步立案金额")
    @NotNull(message = "初步立案金额不能为空")
    private BigDecimal estimateAmount;

    @ApiModelProperty("初步立案金额币种")
    @NotBlank(message = "初步立案金额币种不能为空")
    private String estimateCurrency;

    @ApiModelProperty("赔案情况简介")
    private String claimDesc;

    @ApiModelProperty("适用免赔额说明")
    private String deductibleDesc;

    @ApiModelProperty("备注")
    private String remarks;

    @ApiModelProperty("附件列表")
    private List<CgnciAccessoryDTO> accessoryDTOList;

    @Data
    @ApiModel(description = "附件DTO")
    public static class CgnciAccessoryDTO {
        
        @ApiModelProperty("附件ID")
        @NotNull(message = "附件ID不能为空")
        private Long accId;

        @ApiModelProperty("文件名称")
        private String fileName;

        @ApiModelProperty("文件类型")
        private String fileType;

        @ApiModelProperty("文件路径")
        private String filePath;

        @ApiModelProperty("文件大小")
        private Long fileSize;

        @ApiModelProperty("备注")
        private String remarks;
    }
} 